home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 009 / unprot.arc / SOFTGARD.TXT < prev    next >
Encoding:
Text File  |  1986-03-27  |  37.1 KB  |  928 lines

  1. ************************* DBASE III Ver. 1.10 **********************
  2.  
  3.                  dBase III version 1.10  -  Unprotect
  4.                                                     by The Lone Victor
  5.  
  6.      The following instructions show you how to bypass the SoftGuard
  7. copy protection scheme used on dBase III version 1.10.  This is the same
  8. scheme used for FrameWork 1.10 and for Wordstar 2000 1.00.  Wordstar
  9. 2000 version 1.10 does not use a copy protection scheme, while versions
  10. 1.00 of dBase III and FrameWork used ProLock.  To unprotect Prolock disks
  11. read the file PROLOCK.TXT.
  12.  
  13.      First, using your valid, original dBase III diskette, install it on
  14. a fixed disk.  Softguard hides three files in your root directory:
  15. CML0200.HCL, VDF0200.VDW, and DBASE.EXE.  It also copies DBASE.COM into
  16. your chosen dBase directory.  DBASE.EXE is the real dBase III program,
  17. encrypted.  When you run dbase, the program DBASE.COM loads CML0200.HCL
  18. high in memory and runs it.  CML decrypts itself and reads VDF0200.VDW.
  19. The VDF file contains some code and data from the fixed disk FAT at the
  20. time of installation.  By comparing the information in the VDF file with
  21. the current FAT, CML can tell if the CML, VDF, and DBASE.EXE files are
  22. in the same place on the disk where they were installed.  If they have
  23. moved, say from a backup & restore, then dBase will not run.
  24.  
  25.      Second, un-hide the three files in the root directory.  You can do
  26. this with the programs ALTER.COM or FM.COM, or UNHIDE.COM and HIDE.COM
  27. found on any BBS.
  28.  
  29.      Make copies of the three files, and of DBASE.COM, into some other
  30. directory.
  31.  
  32.      Hide the three root files again using ALTER or FM.
  33.  
  34.      Following the dBase instructions, UNINSTALL dBase III.  You can now
  35. put away your original dBase diskette.  We are done with it.
  36.  
  37.      Next we will make some patches to CML0200.HCL to allow us to trace
  38. through the code in DEBUG.  These patches will keep it from killing our
  39. interrupt vectors.
  40.  
  41. DEBUG CML0200.HCL
  42. E 3F9 <CR>  2A.4A <CR>          ; change the 2A to 4A
  43. E 49D <CR>  F6.16 <CR>          ;  if any of these numbers don't show up
  44. E 506 <CR>  E9.09 <CR>          ;  it's not working.
  45. E A79 <CR>  00.20 <CR>          ;
  46. E AE9 <CR>  00.20 <CR>          ;
  47. E 73C  97 FA FA F4 F1 7E <CR>   ; this is an encrypted call to 0:300
  48. W                               ; write out the new CML file
  49. Q                               ; quit debug
  50.  
  51.  
  52.      Now copy your four saved files back into the root directory and
  53. hide the CML0200.HCL, VDF0200.VDW, and DBASE.EXE files using ALTER or FM.
  54.  
  55.      We can now run DBASE.COM using DEBUG, trace just up to the point
  56. where it has decrypted DBASE.EXE, then write that file out.
  57.  
  58. DEBUG DBASE.COM
  59. R <CR>                          ; write down the value of DS for use below.
  60. A 0:300 <CR>                    ; we must assemble some code here
  61.         POP     AX
  62.         CS:
  63.         MOV     [320],AX        ; save return address
  64.         POP     AX
  65.         CS:
  66.         MOV     [322],AX
  67.         PUSH    ES              ; set up stack the way we need it
  68.         MOV     AX,20
  69.         MOV     ES,AX
  70.         MOV     AX,0
  71.         CS:
  72.         JMP     FAR PTR [320]   ; jump to our return address
  73.  <CR>
  74. G 406                           ; now we can trace CML
  75. T
  76. G 177                           ; this stuff just traces past some
  77. G 1E9                           ;   encryption routines.
  78. T
  79. G 54E                           ; wait while reading VDF & FAT
  80. G=559 569
  81. G=571 857                       ; DBASE.EXE has been decrypted
  82. rBX <CR>                        ; length DBASE.EXE = 1AC00 bytes
  83. :1                              ; set BX to 1
  84. rCX <CR>
  85. :AC00                           ; set CX to AC00.
  86. nDBASE                          ; name of file to write to
  87. W XXXX:100                      ; where XXXX is the value of DS that
  88.                                 ;   you wrote down at the begining.
  89. Q                               ; quit debug
  90.  
  91.      Last, unhide and delete the three root files CML0200.HCL, VDF0200.VDW,
  92. and DBASE.EXE.  Delete DBASE.COM and rename DBASE to DBASE.EXE.  This is the
  93. real dBase III program without any SoftGuard code or encryption.  It requires
  94. only the DBASE.OVL file to run.
  95.  
  96.      If you have any comments on this unprotect routine or the PROLOCK.UNP
  97. routine, please leave them on the Atlanta PCUG BBS (404) 634-5731.
  98.  
  99.                                           The Lone Victor - 4/15/85
  100.  
  101.  
  102.  
  103. ************************* DBASE III PLUS Ver. 1.00 **********************
  104.  
  105.                 How to Unprotect dBase III Plus 1.00
  106.                                                 by the Lone Victor
  107.  
  108.      This file tells how to remove the Softguard Superlok 2.03 copy
  109. protection from dBase III Plus version 1.00, on the file DBASE.LD1,
  110. 138752 bytes, dated 12/27/85 6:00.  It will work with this file and
  111. no others.  If it doesn't work, you probably have a different file.
  112.  
  113.      With this text file you should find a binary file DBASE.BIN.
  114. You will need this file, DEBUG, and your dBase System Disk #1.
  115.  
  116.      Make a new directory on your hard disk or format a new floppy.
  117. into this empty directory copy the following files from your dBase
  118. System Disk 1:  CONFIG.DB, DBASE.LD1, DBASE.MSG, DBASEINL.OVL.  Also
  119. include a copy of the file DBASE.BIN that comes with this text.
  120.  
  121.      Now, using DEBUG execute the following commands:
  122.  
  123.         debug dbase.ld1
  124.         n dbase.bin
  125.         l
  126.         rbx <cr>
  127.         BX 0000                 ;debug response
  128.         :2
  129.         rcx
  130.         CX 2E00                 ;debug response
  131.         :1e00
  132.         w
  133.         Writing 21e00 bytes     ;debug response
  134.         q
  135.  
  136.         rename dbase.bin dbase.exe
  137.         del dbase.ld1
  138.  
  139.      You now have a complete working copy of dBase III Plus.  There
  140. is no need to run the INSTALL and UNINSTALL programs.  If you are
  141. working on a hard disk, also copy all files from System Disk 2 into
  142. your directory.
  143.  
  144.      If anyone has trouble with this copy of dbase.exe, please contact
  145. me on the Atlanta IBM-PCUG BBS at 404-433-0062.
  146.  
  147.                                                 The Lone Victor
  148.  
  149.  
  150.  
  151. ************************* FRAMEWORK II **********************
  152.  
  153. FRMWRK2.UNP        Breaking Framework II's Softguard 2.03 Protection
  154.                                   by The Lone Victor
  155.  
  156.                               Adapted to Framework II by
  157.                               George V. Hartmann / David Jelen
  158.  
  159.      United States copyright law SPECIFICALLY grants you the right to
  160. make copies of programs you buy on magnetic media.  Programs are copy
  161. protected IN VIOLATION OF YOUR RIGHTS UNDER U.S. LAW.
  162.  
  163.      Programs that are protected by the Softguard system are distinguished
  164. by the files CML0203.HCL and VDF0203.VDW which are hidden in the root
  165. directory when you install the program on your fixed disk.  The 0203
  166. part of the file names is the Softguard version (2.03) while CML stands
  167. for Common Loader and VDF is the Volume Descriptor File.  The extensions
  168. HCL and VDW stand for Hard-disk Common Loader and Verify Descriptor Working
  169. copy.  In addition, there will be a hidden root file with a .EXE or .LOD
  170. or some other extension.  This is the REAL program, which has been
  171. encrypted and hidden.
  172.  
  173.      The program FW.COM, in the product directory is the Softguard
  174. miniloader.  All it does is call the Common Loader.  For example, when you
  175. run FW, the program FW.COM loads CML0203.HCL high in memory and
  176. runs it.  CML decrypts itself and reads VDF0203.VDW.  The VDF file contains
  177. some code and data from the fixed disk FAT at the time of installation.  By
  178. comparing the information in the VDF file with the current FAT, CML can
  179. tell if the CML, VDF, and FW.A26 files are in the same place on the disk
  180. where they were installed.  If they have moved, say from a backup &
  181. restore,then CLIPPER will not run.
  182.  
  183.      This text file is designed to let you unprotect the most current
  184. version of Framework, Framework II, which is protected by a variation of
  185. Softguard 2.03. (not 2.03A)
  186.  
  187.                -- INSTRUCTIONS --
  188.  
  189.      First, using your valid, original FRAMEWORK diskette, install it on a
  190. fixed disk.  You cannot use this text to unprotect the floppy directly!
  191. Softguard hides three files in your fixed disk root directory: CML0203.HCL,
  192. VDF0203.VDW, and FW.A26.  It also copies FW.COM into your chosen
  193. FRAMEWORK directory.  FW.A26 is the real FRAMEWORK program, encrypted.  The
  194. extension of this file does not matter.  It is really an encrypted .EXE
  195. file.
  196.  
  197.      Second, un-hide the three files in the root directory.  You can do
  198. this with the programs ALTER.COM or FM.COM found on any BBS.
  199.  
  200.      Make copies of the three files, and of FW.COM, into some other
  201. directory.
  202.  
  203.      Hide the three root files again using ALTER or FM.
  204.  
  205.      Following the FRAMEWORK instructions, UNINSTALL FRAMEWORK.  You can
  206. now put away your original FRAMEWORK diskette.  We are done with it.
  207.  
  208.      Now copy your four saved files back into the root directory and hide
  209. the CML0203.HCL, VDF0203.VDW, and FW.A26 files using ALTER or FM.
  210.  
  211.      We can now run FW.COM using DEBUG, trace just up to the point where it
  212. has decrypted FW.EXE, then write that file out.
  213.  
  214.                                LET 'ER RIP!
  215.  
  216.      Instructions                            Comments
  217.  
  218.  
  219. debug CLIPPER.com        ; name of file that runs the product
  220. r <CR>                   ; dump debug's registers
  221.  
  222.        ****    WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  223.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****
  224.  
  225. g 4D7                    ; now we can trace CML
  226. t
  227. g 1B5
  228. t
  229. e cs:A2
  230.      74.EB               ; debug reports the 74 here, you enter EB
  231. e cs:127                 ;
  232.      E8.90               ; you enter the 90's followed by a space, and
  233.      D1.90  05.90 <CR>   ; a carriage retirn after the 3rd 90 (no space).
  234. g 127
  235. a 185
  236.      jmp 1C5
  237.      <CR>                ; this second CR gets you out of the assembler
  238. a 22B
  239.      jmp 265
  240.      <CR>
  241. a 41F
  242.      mov ax,22
  243.      <CR>
  244. e cs:42F
  245.      01.89               ; debug reports the 01, you enter 89
  246. a 4CE
  247.      mov bl,7A
  248.      <CR>
  249. g 4DF
  250. g 281
  251. t
  252. g 24D
  253. t
  254. g 5A6                    ; wait while reading VDF & FAT
  255. g=5B1 5C1
  256. g=5C9 9DA                ; FW.EXE has been decrypted
  257.  
  258. d cs:1E7 L8              ; just for grins, here's the password
  259.  
  260. rBX <CR>
  261. :3                       ; set BX to 3
  262. rCX <CR>
  263. :7600                    ; set CX to 7600
  264.  
  265. n fw.bin                 ; name of file to write to
  266. w XXXX:100               ; where XXXX is the value of DS that
  267.                          ; you wrote down at the beginning.
  268. q                   ; quit debug
  269.  
  270. REN FW.BIN FW.EXE
  271.  
  272.      Now unhide and delete the files FW.A26, VDF0203.VDW and CML0203.HCL.
  273. FW.COM should also be deleted from the root directory and the product
  274. directory.  Copy FW.EXE from the root directory to the product directory
  275. and you are done.  (And so is Ashton-Tate)
  276.  
  277. NOTE:     The Lone Victor is the author of this method to unprotect
  278. Softguard protected products, and deserves all the credit.  I adapted his
  279. method to Framework II and "cleaned-up" a "chain-letter" unprotection file
  280. that some novices would have had trouble fathoming.  Robert White and Steve
  281. Diamond had nothing to do with this.  GVH
  282.  
  283.  
  284.  
  285. ***************** OTHER SOFTGUARD Ver. 2.03 Protected programs *******
  286.  
  287.  
  288. SOFTG203.UNP        Breaking Softguard version 2.03
  289.                                                     by The Lone Victor
  290.  
  291.      United States copyright law SPECIFICALLY grants you the right to
  292. make copies of programs you buy on magnetic media.  Programs are copy
  293. protected IN VIOLATION OF YOUR RIGHTS UNDER U.S. LAW.
  294.  
  295.      Programs that are protected by the Softguard system are distinguished
  296. by the files CML0203.HCL and VDF0203.VDW which are hidden in the root
  297. directory when you install the program on your fixed disk.  The 0203
  298. part of the file names is the Softguard version (2.03) while CML stands
  299. for Common Loader and VDF is the Volume Descriptor File.  The extensions
  300. HCL and VDW stand for Hard Common Loader and Verify Descriptor Working
  301. copy.  In addition, there will be a hidden root file with a .EXE or .LOD
  302. or some other extension.  This is the REAL program, which has been
  303. encrypted and hidden.
  304.  
  305.      The program PRODUCT.COM, in the product directory is the Softguard
  306. miniloader.  All it does is call the Common Loader.  For example, when you
  307. run CLIPPER, the program CLIPPER.COM loads CML0203.HCL high in memory and
  308. runs it.  CML decrypts itself and reads VDF0203.VDW.  The VDF file contains
  309. some code and data from the fixed disk FAT at the time of installation.  By
  310. comparing the information in the VDF file with the current FAT, CML can tell
  311. if the CML, VDF, and CLIPPER.L23 files are in the same place on the disk
  312. where they were installed.  If they have moved, say from a backup & restore,
  313. then CLIPPER will not run.
  314.  
  315.      This text file is designed to let you unprotect ANY of the programs
  316. using the Softguard 2.03 system.  We will use CLIPPER as an example,
  317. but values for other programs will be included in a table.  This text will
  318. not unprotect any programs using Softguard 2.00.  To unprotect Softguard
  319. 2.00, see the file SOFTG200.  Versions 1.00 of dBase III and Framework
  320. used ProLock.  To unprotect Prolock disks read the file PROLOCK.UNP,
  321. also by yours truly.
  322.  
  323.      This table is an experiment designed to keep down the number of
  324. files uploaded to BBS's.  When I started it, this text file was named
  325. SOFTG203.UN1.  Whenever you add a product to the table (including your
  326. "name" if desired) increment the file name by one and upload it to your
  327. local BBS.  Don't worry about the fact that others will be doing the same.
  328. Higher versions of SOFTG203.UNx will not INSURE that they contain all the
  329. tabulated products, but will be MORE LIKELY to contain them all.
  330. Eventually we'll get them all collected.  (Could this be a new type of
  331. electronic chain letter?)
  332.  
  333.      If you find a new program to add to the table, just enter the name of
  334. the encrypted, hidden file in the root directory, and it's size, converted
  335. to HEX.  Try it out before you upload it to your BBS.
  336.  
  337.      If you have any comments on this unprotect routine or the PROLOCK.UNP
  338. routine, please leave them on the Atlanta PCUG BBS (404) 634-5731.
  339.  
  340.                                           The Lone Victor - 7/14/85
  341.  
  342.  
  343.  
  344.             TABLE OF VALUES FOR VARIOUS PROTECTED PROGRAMS
  345.  
  346.                   FILE    FINAL
  347. PRODUCT  VERSION  NAME     EXT  SIZE:  BX=  CX=        CONTRIBUTOR
  348. ------------------------------------------------------------------------
  349.  
  350. Clipper     1.00  CLIPPER  EXE  BX = 1  CX = 9800  The Lone Victor 7/14/85
  351. Spotlight   1.1   SL       EXE  BX = 0  CX = 6600  HARD DISK USER  7/25/85
  352. Clipper     S85   CLIPPER  EXE  BX = 1  CX = 9200  Hate Protection 9/23/85
  353.  
  354.  
  355.  
  356.      The following instructions show you how to bypass the SoftGuard copy
  357. protection scheme using CLIPPER version 1.00 as an example.  To use it
  358. with other products, simply substitute the values in the table above for
  359. the values given below.  The only things that change are the file name,
  360. and the size that goes in the BX:CX register pair.  You can obtain the file
  361. size by loading the encrypted file (e.g. CLIPPER.L23) with DEBUG and doing
  362. the Register command.  The file size is in the BX:CX register pair.
  363.  
  364.  
  365.  
  366.                         -- INSTRUCTIONS --
  367.  
  368.      First, using your valid, original CLIPPER diskette, install it on a
  369. fixed disk.  You cannot use this text to unprotect the floppy directly!
  370. Softguard hides three files in your fixed disk root directory: CML0203.HCL,
  371. VDF0203.VDW, and CLIPPER.L23.  It also copies CLIPPER.COM into your chosen
  372. CLIPPER directory.  CLIPPER L23 is the real CLIPPER program, encrypted.  The
  373. extension of this file does not matter.  It is really an encrypted .EXE file.
  374.  
  375.      Second, un-hide the three files in the root directory.  You can do
  376. this with the programs ALTER.COM or FM.COM found on any BBS.
  377.  
  378.      Make copies of the three files, and of CLIPPER.COM, into some other
  379. directory.
  380.  
  381.      Hide the three root files again using ALTER or FM.
  382.  
  383.      Following the CLIPPER instructions, UNINSTALL CLIPPER.  You can now
  384. put away your original CLIPPER diskette.  We are done with it.
  385.  
  386.      Now copy your four saved files back into the root directory and hide
  387. the CML0203.HCL, VDF0203.VDW, and CLIPPER.L23 files using ALTER or FM.
  388.  
  389.      We can now run CLIPPER.COM using DEBUG, trace just up to the point
  390. where it has decrypted CLIPPER.EXE, then write that file out.
  391.  
  392.           ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  393.      ****  E.G. USE FW.COM INSTEAD OF CLIPPER.COM FOR FRAMEWORK  ****
  394.  
  395. debug CLIPPER.com               ; name of file that runs the product
  396. r <CR>                          ; dump debug's registers
  397.  
  398.           ****  WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  399.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE.  ****
  400.  
  401. g 4D7                           ; now we can trace CML
  402. t
  403. g 1B5
  404. t
  405. e cs:A2
  406.         74.EB                   ; debug reports the 74 here, you enter EB
  407. e cs:127
  408.         E8.90 D2.90 05.90       ; you enter the 90's followed by a space.
  409. g 127
  410. a 186
  411.         jmp 1C6
  412.         <CR>                    ; this second CR gets you out of the assembler
  413. a 22C
  414.         jmp 266
  415.         <CR>
  416. a 420
  417.         mov ax,22
  418.         <CR>
  419. e cs:430
  420.         01.89                   ; debug reports the 01, you enter 89
  421. a 4CF
  422.         mov bl,7C
  423.         <CR>
  424. g 4E0
  425. g 282
  426. t
  427. g 24D
  428. t
  429. g 59F                           ; wait while reading VDF & FAT
  430. g=5AA 5BA
  431. g=5C2 9D3                       ; CLIPPER.EXE has been decrypted
  432.  
  433. d cs:1E0 L8                     ; just for grins, here's the password
  434.                '44250A15'
  435.  
  436.               ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  437.                ****  THE VALUES HERE ARE FOR CLIPPER 1.00 ONLY  ****
  438.  
  439. rBX <CR>
  440. :1                              ; set BX to 1 for CLIPPER
  441. rCX <CR>
  442. :9800                           ; set CX to 9800 for CLIPPER
  443.  
  444.               ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  445.  
  446. nCLIPPER.bin                    ; name of file to write to
  447. w XXXX:100                      ; where XXXX is the value of DS that
  448.                                 ;   you wrote down at the beginning.
  449. q                               ; quit debug
  450.  
  451.      Last, unhide and delete the three root files CML0203.HCL, VDF0203.VDW,
  452. and CLIPPER.L23.  Delete CLIPPER.COM and rename CLIPPER.BIN to CLIPPER.EXE.
  453. This is the real CLIPPER program without any SoftGuard code or encryption.
  454. We could not write it out with the .EXE extension because DEBUG cannot write
  455. .EXE files.  Every protected program I have seen has the .EXE extention, but
  456. it is possible to use Softguard to encrypt .COM files too.  See the table
  457. above for the proper extension to put on the decrypted file.
  458.  
  459.  
  460.      There is another version of the Softguard system, ALSO labeled 2.03,
  461. but which differs by one byte in part of the CML file and 7 bytes in
  462. another.  If you start to apply the above patches and find some of the
  463. bytes do not match, try the following instructions:
  464.  
  465.  
  466.  
  467. ***  The Summer 85 version responds to the following, but be very careful
  468. to follow directions EXACTLY.  Start over if any mistakes.  ***
  469.  
  470.                                             Another Victor
  471.  
  472.     
  473.  
  474. debug CLIPPER.com               ; name of file that runs the product
  475. r <CR>                          ; dump debug's registers
  476.  
  477.           ****  WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  478.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE.  ****
  479.  
  480. g 4D7                           ; now we can trace CML
  481. t
  482. g 1B5
  483. t
  484. e cs:A2
  485.         74.EB                   ; debug reports the 74 here, you enter EB
  486. e cs:127            ; HERE START THE 1 BYTE DIFFERENCES
  487.         E8.90 D1.90 05.90       ; you enter the 90's followed by a space.
  488. g 127
  489. a 185
  490.         jmp 1C5
  491.         <CR>                    ; this second CR gets you out of the assembler
  492. a 22B
  493.         jmp 265
  494.         <CR>
  495. a 41F
  496.         mov ax,22
  497.         <CR>
  498. e cs:42F
  499.         01.89                   ; debug reports the 01, you enter 89
  500. a 4CE
  501.         mov bl,7A
  502.         <CR>
  503. g 4DF
  504. g 281
  505. t
  506. g 24D
  507. t                ; HERE ARE THE 7 BYTE DIFFERENCES
  508. g 5A6                           ; wait while reading VDF & FAT
  509. g=5B1 5C1
  510. g=5C9 9DA                       ; CLIPPER.EXE has been decrypted
  511.  
  512. d cs:1E L8                     ; just for grins, here's the password
  513.                'SUMMER85'
  514.  
  515.               ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  516.                ****  THE VALUES HERE ARE FOR CLIPPER 1.00 ONLY  ****
  517.                 ****      SEE ABOVE FOR SUMMER 85 VERSION      ****
  518.  
  519. rBX <CR>
  520. :1                              ; set BX to 1 for CLIPPER
  521. rCX <CR>
  522. :9200                           ; set CX to 9800 for CLIPPER
  523.  
  524.               ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  525.  
  526. nCLIPPER.bin                    ; name of file to write to
  527. w XXXX:100                      ; where XXXX is the value of DS that
  528.                                 ;   you wrote down at the beginning.
  529. q                               ; quit debug
  530.  
  531. REN CLIPPER.BIN CLIPPER.EXE
  532.                                           The Lone Victor - 9/20/85
  533.  
  534. ***************** OTHER SOFTGUARD Ver. 2.03 Protected programs *******
  535.  
  536. SOFTG203.UNP        Breaking Softguard version 2.03 & 2.03A
  537. version 9                                           by The Lone Victor
  538.  
  539.      United States copyright law SPECIFICALLY grants you the right to
  540. make copies of programs you buy on magnetic media.  Programs are copy
  541. protected IN VIOLATION OF YOUR RIGHTS UNDER U.S. LAW.
  542.  
  543.      Programs that are protected by the Softguard system are distinguished
  544. by the files CML0203.HCL and VDF0203.VDW which are hidden in the root
  545. directory when you install the program on your fixed disk.  The 0203
  546. part of the file names is the Softguard version (2.03) while CML stands
  547. for Common Loader and VDF is the Volume Descriptor File.  The extensions
  548. HCL and VDW stand for Hard-disk Common Loader and Verify Descriptor Working
  549. copy.  In addition, there will be a hidden root file with a .EXE or .LOD
  550. or some other extension.  This is the REAL program, which has been
  551. encrypted and hidden.
  552.  
  553.      The program <PRODUCT>.COM, in the product directory is the Softguard
  554. miniloader.  All it does is call the Common Loader.  For example, when you
  555. run CLIPPER, the program CLIPPER.COM loads CML0203.HCL high in memory and
  556. runs it.  CML decrypts itself and reads VDF0203.VDW.  The VDF file contains
  557. some code and data from the fixed disk FAT at the time of installation.  By
  558. comparing the information in the VDF file with the current FAT, CML can tell
  559. if the CML, VDF, and CLIPPER.L23 files are in the same place on the disk
  560. where they were installed.  If they have moved, say from a backup & restore,
  561. then CLIPPER will not run.
  562.  
  563.      This text file is designed to let you unprotect ANY of the programs
  564. using the Softguard 2.03 system.  We will use CLIPPER as an example,
  565. but values for other programs will be included in a table.  This text will
  566. not unprotect any programs using Softguard 2.00.  To unprotect Softguard
  567. 2.00, see the file SOFTG200.  Versions 1.00 of dBase III and Framework
  568. used ProLock.  To unprotect Prolock disks read the file PROLOCK.UNP,
  569. also by yours truly.
  570.  
  571.      This table is an experiment designed to keep down the number of
  572. files uploaded to BBS's.  When I started it, this text file was named
  573. SOFTG203.UN1.  Whenever you add a product to the table (including your
  574. "name" if desired) increment the file name by one and upload it to your
  575. local BBS.  Don't worry about the fact that others will be doing the same.
  576. Higher versions of SOFTG203.UNx will not INSURE that they contain all the
  577. tabulated products, but will be MORE LIKELY to contain them all.
  578. Eventually we'll get them all collected.  (Could this be a new type of
  579. electronic chain letter?)
  580.  
  581.      If you find a new program to add to the table, just enter the name of
  582. the encrypted, hidden file in the root directory, and it's size, converted
  583. to HEX.  Try it out before you upload it to your BBS.
  584.  
  585.      If you have any comments on this unprotect routine or the PROLOCK.UNP
  586. routine, please leave them on the Atlanta PCUG BBS (404) 433-0062.
  587.  
  588.                                           The Lone Victor - 7/14/85
  589.  
  590.  
  591.  
  592.             TABLE OF VALUES FOR VARIOUS PROTECTED PROGRAMS
  593.  
  594.                   FILE    FINAL
  595. PRODUCT  VERSION  NAME     EXT  SIZE:  BX=  CX=        CONTRIBUTOR
  596. ------------------------------------------------------------------------
  597.  
  598. Clipper     1.00  CLIPPER  EXE  BX = 1  CX = 9800  The Lone Victor 7/14/85
  599. Spotlight   1.1   SL       EXE  BX = 0  CX = 6600  HARD DISK USER  7/25/85
  600.  
  601.  
  602.  
  603.  
  604.         USE THE SECOND UNPROTECT METHOD FOR THE FOLLOWING PROGRAMS
  605.  
  606.                   FILE    FINAL
  607. PRODUCT  VERSION  NAME     EXT  SIZE:  BX=  CX=        CONTRIBUTOR
  608. ------------------------------------------------------------------------
  609.  
  610. Clipper     S85   CLIPPER  EXE  BX = 1  CX = 9200  Hate Protection 9/23/85
  611. Doubledos   2.1R  DOUBLEDO EXE  BX = 0  CX = 4800  Godfather       10/02/85
  612. Sprdsht Auditor 2.00   AU  EXE  BX = 2  CX = 9400  The Lone Victor 10/31/85
  613.  
  614. dBASE III Developer's Release
  615.                   DBASE    EXE  BX = 1  CX = C000  Vanishing/|\Point 10/85
  616. dBCODE      1.62  DBC      COM  BX = 0  CX = 5A00  Vanishing/|\Point 10/85
  617. dBRUN             DBRUN    COM  BX = 1  CX = AC00  <<BOLTAR>>     11/01/85
  618.  
  619.  
  620.  
  621.  
  622.            USE THE THIRD UNPPROTECT METHOD FOR SOFTGUARD 2.03A
  623.  
  624.                   FILE    FINAL
  625. PRODUCT  VERSION  NAME     EXT  SIZE:  BX=  CX=        CONTRIBUTOR
  626. ------------------------------------------------------------------------
  627.  
  628. 123         2.00  123      EXE  BX = 0  CX = 1C00  The Lone Victor 11/ 4/85
  629. PARADOX     1.00  PARADOX  EXE  BX = 0  CX = 8C30  The Blot        11/12/85
  630.  
  631.  
  632.  
  633.     The following instructions show you how to bypass the SoftGuard copy
  634. protection scheme using CLIPPER version 1.00 as an example.  To use it
  635. with other products, simply substitute the values in the table above for
  636. the values given below.  The only things that change are the file name,
  637. and the size that goes in the BX:CX register pair.  You can obtain the file
  638. size by loading the encrypted file (e.g. CLIPPER.L23) with DEBUG and doing
  639. the Register command.  The file size is in the BX:CX register pair.
  640.  
  641.  
  642.  
  643.                         -- INSTRUCTIONS --
  644.  
  645.      First, using your valid, original CLIPPER diskette, install it on a
  646. fixed disk.  You cannot use this text to unprotect the floppy directly!
  647. Softguard hides three files in your fixed disk root directory: CML0203.HCL,
  648. VDF0203.VDW, and CLIPPER.L23.  It also copies CLIPPER.COM into your chosen
  649. CLIPPER directory.  CLIPPER L23 is the real CLIPPER program, encrypted.  The
  650. extension of this file does not matter.  It is really an encrypted .EXE file.
  651.  
  652.      Second, un-hide the three files in the root directory.  You can do
  653. this with the programs ALTER.COM or FM.COM found on any BBS.
  654.  
  655.      Make copies of the three files, and of CLIPPER.COM, into some other
  656. directory.
  657.  
  658.      Hide the three root files again using ALTER or FM.
  659.  
  660.      Following the CLIPPER instructions, UNINSTALL CLIPPER.  You can now
  661. put away your original CLIPPER diskette.  We are done with it.
  662.  
  663.      Now copy your four saved files back into the root directory and hide
  664. the CML0203.HCL, VDF0203.VDW, and CLIPPER.L23 files using ALTER or FM.
  665.  
  666.      We can now run CLIPPER.COM using DEBUG, trace just up to the point
  667. where it has decrypted CLIPPER.EXE, then write that file out.
  668.  
  669.           ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  670.      ****  E.G. USE FW.COM INSTEAD OF CLIPPER.COM FOR FRAMEWORK  ****
  671.  
  672. debug CLIPPER.com               ; name of file that runs the product
  673. r <CR>                          ; dump debug's registers
  674.  
  675.           ****  WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  676.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****
  677.  
  678. g 4D7                           ; now we can trace CML
  679. t
  680. g 1B5
  681. t
  682. e cs:A2
  683.         74.EB                   ; debug reports the 74 here, you enter EB
  684. e cs:127
  685.         E8.90 D2.90 05.90       ; you enter the 90's followed by a space.
  686.                                 ; If you get a D1 instead of D2 skip to
  687.                                 ; the next page for the second version 2.03
  688. g 127
  689. a 186
  690.         jmp 1C6
  691.         <CR>                    ; this second CR gets you out of the assembler
  692. a 22C
  693.         jmp 266
  694.         <CR>
  695. a 420
  696.         mov ax,22
  697.         <CR>
  698. e cs:430
  699.         01.89                   ; debug reports the 01, you enter 89
  700. a 4CF
  701.         mov bl,7C
  702.         <CR>
  703. g 4E0
  704. g 282
  705. t
  706. g 24D
  707. t
  708. g 59F                           ; wait while reading VDF & FAT
  709. g=5AA 5BA
  710. g=5C2 9D3                       ; CLIPPER.EXE has been decrypted
  711.  
  712. d cs:1E0 L8                     ; just for grins, here's the password
  713.                '44250A15'
  714.  
  715.               ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  716.                ****  THE VALUES HERE ARE FOR CLIPPER 1.00 ONLY  ****
  717.  
  718. rBX <CR>
  719. :1                              ; set BX to 1 for CLIPPER
  720. rCX <CR>
  721. :9800                           ; set CX to 9800 for CLIPPER
  722.  
  723.               ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  724.  
  725. nCLIPPER.bin                    ; name of file to write to
  726. w XXXX:100                      ; where XXXX is the value of DS that
  727.                                 ;   you wrote down at the beginning.
  728. q                               ; quit debug
  729.  
  730.      Last, unhide and delete the three root files CML0203.HCL, VDF0203.VDW,
  731. and CLIPPER.L23.  Delete CLIPPER.COM and rename CLIPPER.BIN to CLIPPER.EXE.
  732. This is the real CLIPPER program without any SoftGuard code or encryption.
  733. We could not write it out with the .EXE extension because DEBUG cannot write
  734. .EXE files.  Every protected program I have seen has the .EXE extention, but
  735. it is possible to use Softguard to encrypt .COM files too.  See the table
  736. above for the proper extension to put on the decrypted file.
  737.  
  738.  
  739.      There is another version of the Softguard system, ALSO labeled 2.03,
  740. but which differs by one byte in part of the CML file and 7 bytes in
  741. another.  If you start to apply the above patches and find some of the
  742. bytes do not match, try the following instructions:
  743.  
  744. debug CLIPPER.com               ; name of file that runs the product
  745. r <CR>                          ; dump debug's registers
  746.  
  747.           ****  WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  748.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****
  749.  
  750. g 4D7                           ; now we can trace CML
  751. t
  752. g 1B5
  753. t
  754. e cs:A2
  755.         74.EB                   ; debug reports the 74 here, you enter EB
  756. e cs:127                        ; HERE START THE 1 BYTE DIFFERENCES
  757.         E8.90 D1.90 05.90       ; you enter the 90's followed by a space.
  758. g 127
  759. a 185
  760.         jmp 1C5
  761.         <CR>                    ; this second CR gets you out of the assembler
  762. a 22B
  763.         jmp 265
  764.         <CR>
  765. a 41F
  766.         mov ax,22
  767.         <CR>
  768. e cs:42F
  769.         01.89                   ; debug reports the 01, you enter 89
  770. a 4CE
  771.         mov bl,7A
  772. g 4DF
  773. g 281
  774. t
  775. g 24D
  776. t                               ; HERE ARE THE 7 BYTE DIFFERENCES
  777. g 5A6                           ; wait while reading VDF & FAT
  778. g=5B1 5C1
  779. g=5C9 9DA                       ; CLIPPER.EXE has been decrypted
  780.  
  781. d cs:1E7 L8                     ; just for grins, here's the password
  782.                'SUMMER85'
  783.  
  784.               ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  785.              ****  THE VALUES HERE ARE FOR CLIPPER SUMMER 85 ONLY  ****
  786.  
  787. rBX <CR>
  788. :1                              ; set BX to 1 for CLIPPER
  789. rCX <CR>
  790. :9200                           ; set CX to 9800 for CLIPPER
  791.  
  792.               ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  793.  
  794. nCLIPPER.bin                    ; name of file to write to
  795. w XXXX:100                      ; where XXXX is the value of DS that
  796.                                 ;   you wrote down at the beginning.
  797. q                               ; quit debug
  798.  
  799. REN CLIPPER.BIN CLIPPER.EXE
  800.                                           The Lone Victor - 9/20/85
  801.  
  802.  
  803. SOFT203A.UNP        Breaking Softguard version 2.03A
  804. version 1                                           by The Lone Victor
  805.  
  806.      There is a THIRD version of the Softguard system, labeled 2.03A,
  807. which is used by Lotus for 123 release 2.
  808.  
  809.      First, using your valid, original 123 diskette, install it on a
  810. fixed disk.  You cannot use this text to unprotect the floppy directly!
  811. Softguard hides three files in your fixed disk root directory: CML0203A.HCL,
  812. VDF0203A.VDW, and 123.L2C.  It also copies 123.COM into your chosen 123
  813. directory.  123.L2C is the real 123 loader, encrypted (it loades the 123.CMP
  814. file). The extension of this file does not matter.  It is really an
  815. encrypted .EXE file.
  816.  
  817.      Second, un-hide the three files in the root directory.  You can do
  818. this with the programs ALTER.COM or FM.COM found on any BBS.
  819.  
  820.      Make copies of the three files, and of 123.COM, into some other
  821. directory.
  822.  
  823.      Hide the three root files again using ALTER or FM.
  824.  
  825.      Following the 123 instructions, UNINSTALL 123.  You can now
  826. put away your original 123 diskette.  We are done with it.
  827.  
  828.      Now copy your four saved files back into the root directory and hide
  829. the CML0203A.HCL, VDF0203A.VDW, and 123.L2C files using ALTER or FM.
  830.  
  831.      We can now run 123.COM using DEBUG, trace just up to the point
  832. where it has decrypted 123.EXE, then write that file out.
  833.  
  834.           ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  835.        ****  E.G. USE FW.COM INSTEAD OF 123.COM FOR FRAMEWORK  ****
  836.  
  837. debug 123.com                   ; name of file that runs the product
  838. r <CR>                          ; dump debug's registers
  839.  
  840.           ****  WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  841.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE. ****
  842.  
  843. g 4FA                           ; now we can trace CML
  844. t                               ; this step changes segments into CML
  845. g 1B5
  846. t                               ; change segments
  847. a 7D    mov ax,cs               ; assemble new instruction here over xor ax,ax
  848. e cs:E9                         ; NOP out a mov ds,cx instruction
  849.         8E.90 D9.90             ; when debug reports 8E. you enter 90 <space>
  850.                                 ; when debug reports D9. you enter 90 <CR>
  851. e cs:F5                         ; change a jz instruction into a jmp
  852.         74.EB                   ; debug reports the 74 here, you enter EB
  853. e cs:107
  854.         8E.90 D8.90             ; NOP out a mov ds,ax
  855. e cs:119
  856.         8E.90 D9.90             ; NOP out a mov ds,cx
  857. e cs:1AA
  858.         CC.90                   ; NOP out an int 3
  859. g1AA                            ; go to this address
  860. e cs:1E6
  861.         CC.90                   ; NOP out an int 3
  862. e cs:200
  863.         E8.90 FF.90 03.90       ; NOP out a call 602
  864. e cs:269
  865.         26.2E                   ; change an es: to cs:
  866. e cs:26E                        ; change order of some pop instructions
  867.         1F.5A 5A.59 5F.5B 5B.5F 5E.5E 59.1F
  868. e cs:1B6
  869.         8E.90 DB.90             ; NOP out a mov ds.bx
  870. e cs:1DD
  871.         74.EB                   ; change a jz to a jmp
  872. a 44C
  873.         jmp 4BF                 ; jump to some code we need
  874. a 53C
  875.         jmp 455                 ; jump back into main line code
  876. a 4E1
  877.         mov bl,10               ; provide correct checksum value
  878. e cs:500
  879.         FE.90 C7.90             ; NOP out an inc bh
  880. e cs:52B
  881.         8E.90 D9.90             ; NOP out a mov ds,cx
  882. g 1E6
  883. t                               ; trace through two passes
  884. g 1E6
  885. g 290
  886. t                               ; change segments
  887. g 24D
  888. t                               ; change segments
  889. e cs:728
  890.         8C.90 1F.90             ; NOP out a mov [bx],ds
  891. e cs:431
  892.         89.90 07.90             ; NOP out a mov [bx],ds
  893. e cs:5BD
  894.         75.90 03.90             ; NOP out a jnz 5C2
  895. e cs:5F0
  896.         89.90 17.90             ; NOP out a mov [bx],dx
  897. e cs:5D8
  898.         74.EB                   ; change a jz to jmp
  899. g A41
  900. g AFA                           ; 123.EXE has been decrypted
  901.  
  902. d cs:1F1 L8                     ; just for grins, here's the password
  903.                'LOTUSKEY'
  904. e XXXX:100                      ; where XXXX is the value of DS that
  905.                                 ;   you wrote down at the beginning.
  906.         3B.4D 2E.5A             ; programs other than 123 rel 2 may
  907.                                 ; have some numbers here other than 3B 2E
  908.  
  909.               ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  910.                  ****  THE VALUES HERE ARE FOR 123 2.00 ONLY  ****
  911.  
  912. rBX <CR>
  913. :0                              ; set BX to 0 for 123
  914. rCX <CR>
  915. :1C00                           ; set CX to 1C00 for 123
  916.  
  917.               ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  918.  
  919. n123.bin                        ; name of file to write to
  920. w XXXX:100                      ; again XXXX is the original DS value
  921. q                               ; quit debug
  922.  
  923.      Last, unhide and delete the three root files CML0203A.HCL, VDF0203A.VDW,
  924. and 123.L2C.  Delete 123.COM and rename 123.BIN to 123.EXE.  This is the
  925. unprotected 123 loader which runs the 123.CMP program.  We could not write it
  926. out with the .EXE extension because DEBUG cannot write .EXE files.
  927.